package com.szqhyxj.youxiangju.biz.realNameAuth.idcard;

import android.content.Context;

import com.szqhyxj.youxiangju.BasePresenter;
import com.szqhyxj.youxiangju.PromptView;

import java.io.File;
import java.io.IOException;

public interface IDCardAuthContract {

    interface View extends PromptView{

        /**
         * 预览正面
         *
         * @param file
         */
        void previewFace(File file);

        void showFace();

        /**
         * 预览反面
         *
         * @param file
         */
        void previewBack(File file);

        void showBack();

        /**
         * 显示身份证正面 OCR 结果
         *
         * @param idCardFaceInfo
         */
        void showIDCardFace(IDCardFaceInfo idCardFaceInfo);

        /**
         * 显示身份证反面 OCR 结果
         *
         * @param idCardBackInfo
         */
        void showIDCardBack(IDCardBackInfo idCardBackInfo);

        void showOCRName(String name);

        void showOCRIdno(String no);

        void showStartDate(String s);

        void showEndDate(String s);

        void showOCRValidity(String date);

        void showOCRTip(String s);

        void enshowOCRTip();

        void showInfo();

        void enshowInfo();

        void commitSuccess(String s);

        void commitFial();

        /**
         * 跳转到拍照（正面）
         *
         * @param photoFile
         */
        void navToTakePhotoFace(File photoFile);

        /**
         * 跳转到拍照（反面）
         *
         * @param photoFile
         */
        void navToTakePhotoBack(File photoFile);

        /**
         * 跳转到相册选择（正面）
         */
        void navToGalleryForFace();

        /**
         * 跳转到相册选择（反面）
         */
        void navToGalleryForBack();

        /**
         * 提示 OCR 失败
         *
         * @param message
         */
        void showOcrFail(String message);

        /**
         * 提示上传正面成功
         *
         * @param fileUrl
         */
        void showIDCardFaceUploadSuccess(String fileUrl);

        /**
         * 提示上传正面失败
         *
         * @param message
         */
        void showIDCardFaceUploadFail(String message);

        /**
         * 提示上传反面成功
         *
         * @param fileUrl
         */
        void showIDCardBackUploadSuccess(String fileUrl);

        /**
         * 提示上传反面失败
         *
         * @param message
         */
        void showIDCardBackUploadFail(String message);

        void uploadSuccessFace();

        void uploadSuccessBack();

        void showFaceUrl(String s);

        void showBackUrl(String s);

        void flagUrl();

        void showToast(String s);

        void showCommit();

        void showEncommit();

    }

    interface Presenter extends BasePresenter {

        void setName(String s);

        void setIdCard(String s);

        void setStartDate(String s);

        void setEndDate(String s);

        void request();

        void commint();

        /**
         * 拍照（正面）
         *
         * @param context
         * @throws IOException
         */
        void takePhotoForFace(Context context) throws IOException;

        /**
         * 拍照（反面）
         *
         * @param context
         * @throws IOException
         */
        void takePhotoForBack(Context context) throws IOException;

        /**
         * 相册选择（正面）
         */
        void selectFromGalleryForFace();

        /**
         * 相册选择（反面）
         */
        void selectFromGalleryForBack();

        /**
         * 处理拍照的结果（正面）
         *
         * @param context
         * @throws IOException
         */
        void idcardFaceFromTakePhoto(Context context) throws IOException;

        /**
         * 处理拍照的结果（反面）
         *
         * @param context
         * @throws IOException
         */
        void idcardBackFromTakePhoto(Context context) throws IOException;

        /**
         * 处理相册选择的结果（正面）
         *
         */
        void idcardFaceFromGallery(File file);

        /**
         * 处理相册选择的结果（反面）
         *
         */
        void idcardBackFromGallery(File file);

        void setCommit();

        void setEncommit();
    }
}